SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[parCargosTitularesInterinos]   


@TipoDeServicio INT, 
@RegimenSalarial INT,
@FechaX VARCHAR(10),
@SoloPrivadas VARCHAR(1)

AS
SET NOCOUNT ON
SET DATEFORMAT DMY
-- A pesar del nombre del PA sirve tanto para Horas como para Cargos -- Perdon es que el reporte estaba listo

SELECT cs.IdCargo, LTRIM(RTRIM(cs.Cargo))+' - ['+LTRIM(RTRIM(CONVERT(VARCHAR(20),cs.IdCargo)))+']' Cargo,
		   CASE WHEN (sr.idSituacionRevista=1) THEN '1 - Titular' 
				WHEN (sr.idSituacionRevista=2 AND (sa.EstaEnProcesoDeTitularizacion<>'S' OR sa.EstaEnProcesoDeTitularizacion IS null )) THEN '2 - Interino' 
		 		WHEN (sr.idSituacionRevista=2 AND sa.EstaEnProcesoDeTitularizacion='S') THEN '3 - a Titularizar'  END AS SituacionRevista,
		   CASE WHEN @RegimenSalarial = 12 THEN COUNT(sa.idServicioAgente)
			WHEN @RegimenSalarial = 13 THEN SUM(sa.Horas) END AS  CantCargos		

	 FROM tb_CargosSalariales CS
	 	INNER JOIN tb_ServiciosAgentes Sa ON cs.idCargo=sa.CargoSalarial
		INNER JOIN tb_Situacionrevista sr ON sr.idSituacionRevista =sa.SituacionRevista
		INNER JOIN tb_Organizaciones Org ON Org.idOrganizaciones = Sa.UbicacionOrig 
		
	WHERE CS.Regimensalarial = @RegimenSalarial
		AND Org.EsPrivada = @SoloPrivadas
		AND SA.TipoDeServicio = @TipoDeServicio
		AND sa.SituacionRevista IN(1,2)
		AND ((sa.fechaalta<=@fechax AND sa.FechaBaja IS NULL)  OR (sa.fechaalta<=@fechax AND sa.FechaBaja >= @fechax))-- OR sa.FechaBaja >=@fechax))
		AND  EXISTS (SELECT TOP 1 sw.ServicioAgente FROM tb_SubserviciosAgentes sw WHERE sw.ServicioAgente=sa.idservicioagente) 

	GROUP BY cs.idCargo, cs.cargo,sr.Descripcion,
			CASE WHEN (sr.idSituacionRevista=1) THEN '1 - Titular' 
				 WHEN (sr.idSituacionRevista=2 AND (sa.EstaEnProcesoDeTitularizacion<>'S' OR sa.EstaEnProcesoDeTitularizacion IS null )) THEN '2 - Interino'
				 WHEN (sr.idSituacionRevista=2 AND sa.EstaEnProcesoDeTitularizacion='S') THEN '3 - a Titularizar'  END
GO
GRANT EXECUTE ON  [dbo].[parCargosTitularesInterinos] TO [public]
GO
